package member.api;

import member.model.core.CoreCompany;
import member.model.core.CoreUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * Created by ChenGeng on 2016/10/27.
 */
public interface CoreUserApi {

    /**
     *  根据账户名和机构编号查找采购员
     * @return
     */
    public String toString();

    /**
     *  根据账户名和机构编号查找采购员
     * @param username  账户名
     * @param companyId 机构编号
     * @return
     */
//    public Page<CoreUser> findCoreUser(String username, String companyId , Pageable pageable);

    /**
     *  根据账户名和机构编号查找采购员
     * @param username  账户名
     * @return
     */
    public Page<CoreUser> findCoreUser(String username, Pageable pageable);

    /**
     * 根据memberId将数据库中的Member和CoreUser标记为删除
     * @param id
     */
    public void deleteDataById(String id);

    /**
     * 根据memberId将数据库中的CoreUser标记为删除
     * @param id
     */
    public void disableDataById(String id);

    /**
     * 根据username查询对应CoreUser对象
     * @param username
     */
    public CoreUser findByUserName(String username);

    /**
     *  根据userLoginId查询对应CoreUser对象，
     * @param userLoginId 这是Phone或者Email
     * @return
     */
    public CoreUser findByPhoneOrEmail(String userLoginId);



    /**
     * 根据username，phone，email模糊查询CoreUser
     * @param username
     * @param phone
     * @param email
     * @return
     */
    public List<CoreUser> findByUsernameAndPhoneAndEmail(String username,String phone,String email);

    /**
     * 按id 取用户信息
     * @param userid
     * @return
     */
    CoreUser findById(String userid);

	public CoreUser saveCoreUser(CoreUser coreUser);

    public CoreUser isExistCore(String username,String phone, String email);

    public void deleteCoreUserById(String id);

    /**
     * 根据用户名查找未被删除的CoreUser
     * @param username
     * @return
     */
    public List<CoreUser> findCoreUserByUsername(String username);

    /**
     * 根据实体模板查找
     * @param example
     * @return
     */
    public List<CoreUser> findByExample(CoreUser example);

    /**
     * 根据实体模板查找（分页）
     * @param example
     * @param pageable
     * @return
     */
    public Page<CoreUser> findByExample(CoreUser example, Pageable pageable);
}
